package org.lts.yuqueexportor.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 语雀配置类
 */
@Data
@Component
@ConfigurationProperties(prefix = "yuque")
public class YuqueConfig {

    /**
     * 认证Token
     */
    private String authToken;

    /**
     * CSRF Token
     */
    private String csrfToken;

    /**
     * API基础URL
     */
    private String baseUrl;

    /**
     * 导出配置
     */
    private ExportConfig export;

    /**
     * 保存路径
     */
    private String savePath;

    /**
     * 目标团队列表
     */
    private List<String> targetGroups;

    /**
     * 是否包含个人空间
     */
    private Boolean includePersonal = true;

    /**
     * 下载配置
     */
    private DownloadConfig download;

    @Data
    public static class ExportConfig {
        /**
         * 导出类型
         */
        private String type = "markdown";

        /**
         * LaTeX类型
         */
        private Integer latexType = 2;

        /**
         * 是否启用锚点
         */
        private Boolean enableAnchor = false;

        /**
         * 是否启用换行
         */
        private Boolean enableBreak = false;
    }

    @Data
    public static class DownloadConfig {
        /**
         * 超时时间
         */
        private Integer timeout = 30000;

        /**
         * 重试次数
         */
        private Integer retryTimes = 3;

        /**
         * 重试间隔
         */
        private Integer retryInterval = 2000;
    }
}
